Spring Boot——LiveReload 实现静态文件的热部署

作者: 李多多 日期: 2019-06-20
Spring Boot
Spring Boot——LiveReload 实现静态文件的热部署

利用 LiveReload 可以实现静态文件的热部署,LiveReload 可以在资源发生变化时自动触发浏览器更新,LiveReload 支持 Chrome、Firefox 以及 Safari 。以 Chrome 为例,在 Chrome 应用商店搜索 LiveReload ,结果如下图:

image.png

添加成功后,在 Chrome 右上角有一个 LiveReload 图标,如下:
image.png

打开 LiveReload 之后,我们启动一个加了 devtools 依赖的 Spring Boot 项目:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>

点击浏览器右上角的 LiveReload 按钮,打开 LiveReload 功能。此时对于谷歌浏览器来说,只是对当前打开的标签页有效,新的标签页无效。

此时随便在 resources/static 目录下添加一个静态 html 页面,然后启动 Spring Boot 项目,在打开了 LiveReload 的选项卡中访问 html 页面。访问成功后,我们再去手动修改 html 页面代码,修改成功后,回到浏览器,不用做任何操作,就会发现浏览器自动刷新了,页面已经更新了。整个过程中,Spring Boot 项目不用重启。

如果开发者安装并且启动了 LiveReload 插件,同时也添加了 devtools 依赖,但是却并不想当静态页面发生变化时浏览器自动刷新,那么可以在 application.properties 中添加如下代码进行配置:

spring.devtools.livereload.enabled=false

建议开发者使用 LiveReload 策略而不是项目重启策略来实现静态资源的动态加载,因为项目重启所耗费时间一般来说要超过使用LiveReload 所耗费的时间。